/**
 * Copyright &copy; 2013-2015 山东易科德软件有限公司 All rights reserved.
 */
package cn.net.ecode.modules.sys.utils;

import java.util.Map;

import cn.net.ecode.common.utils.CacheUtils;
import cn.net.ecode.common.utils.SpringContextHolder;
import cn.net.ecode.modules.sys.dao.ConfigDao;
import cn.net.ecode.modules.sys.entity.Config;

import com.google.common.collect.Maps;

/**
 * 参数配置工具类
 * @author ThinkGem
 * @version 2014-7-31
 */
public class ConfigUtils {
	
	private static ConfigDao configDao = SpringContextHolder.getBean(ConfigDao.class);

	public static final String CACHE_CONFIG_MAP = "configMap";
	
	/**
	 * 根据键值获取参数
	 * @param key
	 * @return
	 */
	public synchronized static Config getConfig(String key){
		@SuppressWarnings("unchecked")
		Map<String, Config> configMap = (Map<String, Config>)CacheUtils.get(CACHE_CONFIG_MAP);
		if (configMap == null){
			configMap = Maps.newHashMap();
			for (Config config : configDao.findList(new Config())){
				configMap.put(config.getKeys(), config);
			}
			CacheUtils.put(CACHE_CONFIG_MAP, configMap);
		}
		Config config = configMap.get(key);
		if (config == null){
			config = new Config();
		}
		return config;
	}

	/**
	 * 清理缓存
	 */
	public static void clearCache(){
		CacheUtils.remove(CACHE_CONFIG_MAP);
	}
	
}
